#include<stdio.h>
int Add(int a,int b)
{
    return a+b;
}
int Sub(int a,int b)
{
    return a-b;
}
int Mul(int a,int b)
{
    return a*b;
}
int Div(int a,int b)
{
    return a/b;
}
int main(){
    int i,j,input,ret=0;
    printf("请选择进行的运算\n");
    scanf("%d",&input);
    printf("请输入操作数\n");
    scanf("%d %d",&i,&j);
   /*switch(input)
    {
        case 1:
        ret=Add(i,j);
        printf("ret=%d\n",ret);
        break;

        case 2:
        ret=Sub(i,j);
        printf("ret=%d\n",ret);
        break;

        case 3:
        ret=Mul(i,j);
        printf("ret=%d\n",ret);
        break;

        case 4:
        ret=Div(i,j);
        printf("ret=%d\n",ret);
        break;

        default:
        printf("请输入合适的运算\n");
        break;
    }
    return 0;
}*/

//使用函数数组的写法
int(*p[5])(int i,int j)={0,Add,Sub,Mul,Div};
if(input<=4&&input>=1)
{
    ret=(*p[input])(i,j);
}
else
{
   printf("请输入合适的运算\n"); 
}
return 0;
}
//将对应的地址传到函数指针，通过函数数组调用四则运算的函数
//函数数组的定义方法是将函数定义方法中的函数名改为(*数组名[元素个数])；
//函数数组的调用方法是 (*数组名[下标])(传入变量)